package cn.iocoder.yudao.hires.entity;

import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.time.LocalDateTime;

/**
 * 下游-投递记录 DO
 *
 * @author 超级管理员
 */
@TableName("system_notice_application")
@KeySequence("system_notice_application_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class NoticeApplicationDO extends BaseDO {

    /**
     * 主键ID
     */
    @TableId
    private Long id;
    /**
     * 用户ID
     */
    private Long userId;

    /**
     * 租户id
     */
    private Long tenantId;
    /**
     * 简历ID
     */
    private Long resumeId;
    /**
     * 企业名称(冗余)
     */
    private String companyName;
    /**
     * 职位ID
     */
    private Long positionId;
    /**
     * 职位名称(冗余)
     */
    private String positionName;
    /**
     * 投递时间
     */
    private LocalDateTime applicationTime;
    /**
     * 状态(0:已投递 1:已查看 2:感兴趣 3:不合适 4:已邀约)
     */
    private Integer status;
    /**
     * 反馈时间
     */
    private LocalDateTime feedbackTime;
    /**
     * 反馈内容
     */
    private String feedbackContent;
    /**
     * 是否已读(0:未读 1:已读)
     */
    private Integer isRead;
    /**
     * 标记(0:无 1:星标 2:重要)
     */
    private Integer mark;
    /**
     * 来源(1:主动投递 2:企业邀请)
     */
    private Integer source;


    // 个人简历基本信息
    @TableField(exist = false)
    private String userName;
    @TableField(exist = false)
    private Integer calculatedAge;
    @TableField(exist = false)
    private String workExperienceName;
    @TableField(exist = false)
    private String degree;
    /**
     * 之前任职的公司名称
     */
    @TableField(exist = false)
    private String orgName;
    /**
     * 年限
     */
    @TableField(exist = false)
    private String unTime;
    /**
     * 担任职务
     */
    @TableField(exist = false)
    private String office;
    //企业信息
    @TableField(exist = false)
    private String logoUrl;
    @TableField(exist = false)
    private String tenantName;
    @TableField(exist = false)
    private String industryName;
    @TableField(exist = false)
    private String companyNatureName;
    @TableField(exist = false)
    private String companyScaleName;
    //职位
    @TableField(exist = false)
    private String title;
    @TableField(exist = false)
    private String educationDictLabel;
    @TableField(exist = false)
    private String salaryDictLabel;
    @TableField(exist = false)
    private String experienceDictLabel;
    @TableField(exist = false)
    private String benefitsDictLabel;
    @TableField(exist = false)
    private String workProvinceName;
    @TableField(exist = false)
    private String contactName;
    @TableField(exist = false)
    private String contactPosition;
    @TableField(exist = false)
    private String contactPhone;
    @TableField(exist = false)
    private String contactEmail;
    @TableField(exist = false)
    @Schema(description = "是否最新(0否 1是)")
    private String isLatest;

    @TableField(exist = false)
    @Schema(description = "是否急聘(0否 1是)")
    private String isUrgent;


    /**
     * 职位id
     */
    private Integer positionCategoryId;

    /**
     * 职位名称
     */
    private String positionCategoryName;
}